<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script>
        // 案例1 
        // var num = 10;

        // function fn() {
        //     console.log(num);
        //     var num = 20;
        //     console.log(num);
        // }
        // fn();

        // 相当于执行了以下代码“

        // var num;
        // function fn() {
        //     var num;
        //     console.log(num);  // undefined
        //     num = 20;
        //     console.log(num); // 20
        // }
        // num = 10;
        // fn();


        // 案例2 
        // var a = 18;
        // f1();

        // function f1() {
        //     var b = 9;
        //     console.log(a);
        //     console.log(b);
        //     var a = '123';
        // }

        // 相当于执行了以下代码
        // var a;

        // function f1() {
        //     var b;
        //     var a;
        //     b = 9;
        //     console.log(a); // undefined
        //     console.log(b); // 9
        //     a = '123';
        // }

        // f1();


        // // 案例3 

        f1();
        console.log(c);
        console.log(b);
        console.log(a);

        function f1() {
            var a = b = c = 9;
            console.log(a);
            console.log(b);
            console.log(c);
        }

        // 相当于执行以下代码

        function f1() {
            // var a = 9; // 局部变量  外面不能使用
            // b = 9;  // 函数内部未声明 直接赋值使用的全局变量
            // c = 9;  // 函数内部未声明 直接赋值使用的全局变量
            var a;
            a = b = c = 9;
            console.log(a); // 9
            console.log(b); // 9
            console.log(c); // 9
        }

        f1();
        console.log(c); // 9 
        console.log(b); // 9 
        console.log(a); // 报错了
    </script>
</head>

<body>

</body>

</html>